1. Field of the Invention
The present invention relates to the design of computer systems that support efficient references to objects defined within an object-oriented programming system. More specifically, the present invention relates to a method and an apparatus that provides an object-addressed memory hierarchy that is able to access objects stored outside of main memory.
2. Related Art
As object-oriented programming languages become more widely used, computer systems are being designed to manipulate objects more efficiently. When a computer system manipulates an object, it typically manipulates ancillary data structures associated with the object. For example, the object can be associated with a corresponding object table entry that contains metadata for the object, such as the object's physical address (if the object has one). In this example, to access the object it may be necessary to first access the corresponding object table entry to determine the physical address of the object.
In order to speed up this translation process, some proposed systems provide hardware support to translate between a location-independent object identifier (OID) and a corresponding location in physical memory (main memory) where the object is stored.
Such systems generally bypass the translation mechanisms of the virtual memory system. This means they must assume that objects will always fit into the physical memory of an executing computer system. Unfortunately, this assumption can greatly limit the size of applications that can run, especially in computer systems that have limited physical memory.
Hence, in order to overcome this limitation, what is needed is a method and an apparatus that allows an object-addressed memory hierarchy to manipulate objects that are located outside of physical memory.